const Service = require("egg").Service;
const axios = require("axios");

class WxchatroomdbService extends Service {
  // 创建群聊消息
  async create(data) {
    const { ctx } = this;
    data.date = new Date(Number(data.timestamp) + 8 * 60 * 60 * 1000);
    try {
      const result = await ctx.model.Wxchatroomdb.create(data);
      return result;
    } catch (err) {
      this.ctx.logger.error("创建群聊消息失败:", err);
      return null;
    }
  }

  // 根据条件查询群聊消息
  async find(query = {}, options = {}) {
    const { ctx } = this;
    try {
      const result = await ctx.model.Wxchatroomdb.find(query, null, options);
      return result;
    } catch (err) {
      this.ctx.logger.error("查询群聊消息失败:", err);
      return [];
    }
  }

  // 根据ID查找单条群聊消息
  async findById(id) {
    const { ctx } = this;
    try {
      const result = await ctx.model.Wxchatroomdb.findById(id);
      return result;
    } catch (err) {
      this.ctx.logger.error("根据ID查询群聊消息失败:", err);
      return null;
    }
  }

  // 根据ID删除群聊消息
  async deleteById(id) {
    const { ctx } = this;
    try {
      const result = await ctx.model.Wxchatroomdb.findByIdAndDelete(id);
      return result;
    } catch (err) {
      this.ctx.logger.error("删除群聊消息失败:", err);
      return null;
    }
  }

  // 获取群成员列表
  async getMemberList(mywxid, wxid) {
    try {
      const response = await axios.post(
        this.config.baseURL,
        {
          type: "getMemberList",
          data: {
            wxid: wxid,
            type: "2",
            getNick: "1",
          },
        },
        {
          params: { wxid: mywxid },
        }
      );
      // 检查响应状态
      return response.data.result;
    } catch (error) {
      // 捕获异常并返回错误信息
    }
  }

  // 获取群成员头像
  async getMemberNick(mywxid, gid, objWxid) {
    try {
      const response = await axios.post(
        this.config.baseURL,
        {
          type: "getMemberNick",
          data: {
            wxid: gid,
            objWxid,
          },
        },
        {
          params: { wxid: mywxid },
        }
      );
      // 检查响应状态
      return response.data.result.groupNick;
    } catch (error) {
      // 捕获异常并返回错误信息
    }
  }
}

module.exports = WxchatroomdbService;
